category: sub_main
step: 6_attribution
sub_step: 4_find_new_period
in_main_macro: attr
doc_status: ready
macro attr_find_new_period
Без вспомогательных макросов.
Это четвёртый шаг макроса attr
. В этом макросе ищется новый период для каждого события в атрибуции. Он определяет, когда начинается новый период для анализа данных.
Этот макрос принимает следующие аргументы:
params = none,
funnel_name=none,
limit0=none,
metadata=project_metadata()
Сначала в макросе происходит настройка материализации данных: устанавливается порядок сортировки данных по идентификатору группы, дате, ссылке и идентификатору.
Далее происходит извлечение метаданных и шагов воронки для формирования списка шагов и их порядкового номера.
После этого происходит подготовка нового периода. Для каждой группы определяется дата последнего события на шагах, входящих в состав периода.
Далее в макросе идёт определение, является ли каждое событие новым периодом.
Для каждого события вычисляется разница между его датой и датой последнего события в периоде.
Если разница меньше указанного периода (или 90 дней, если период не указан), событие считается принадлежащим текущему периоду.
Если аргумент limit0
активирован, то в конце SQL-запроса будет добавлено LIMIT 0
.
Файл в формате sql в папке models. Название файла attr_myfirstfunnel_find_new_period
Содержимое файла:
-- depends_on: {{ ref('attr_myfirstfunnel_add_row_number') }}
{{ datacraft.attr() }}